Skip to content

feat: F5 dos for nginx 4.9#1863

Open
rnitzan wants to merge 13 commits intomainfrom
nap-dos-4.9
Open

feat: F5 dos for nginx 4.9#1863
rnitzan wants to merge 13 commits intomainfrom
nap-dos-4.9

Conversation

@rnitzan
Copy link
Copy Markdown
Contributor

@rnitzan rnitzan commented Apr 19, 2026

Proposed changes

F5 Dos for NGINX v4.9 release over NGINX Plus R37

  • Align with NGINX Plus R37
  • Adding RHEL 10 support
  • Adding Debian 13 support
  • Docker and k8s documentation update

Checklist

Before sharing this pull request, I completed the following checklist:

Footnotes

  1. Potentially sensitive information includes personally identify information (PII), authentication credentials, and live URLs. Refer to the style guide for guidance about placeholder content.

@github-actions github-actions Bot added documentation Improvements or additions to documentation product/dos Issues related to F5 DoS for NGINX labels Apr 19, 2026
@github-actions
Copy link
Copy Markdown

Deploy Preview will be available once build job completes!

Name Link
😎 Deploy Preview https://frontdoor-test-docs.nginx.com/previews/docs/1863/

rnitzan and others added 8 commits April 19, 2026 12:28
…ent (#1871)

* added Google site verification file for Google Search Console enablement

* moved to /static

---------

Co-authored-by: Lam Nguyen <la.nguyen@f5.com>
)

* Add instructions that shows a user how update an existing license

* Minor change to kubectl param

* Correct param
…r security monitoring (#1861)

* docs(nginx-one): improve security monitoring setup verification

-  Clarify where to place the secops_dashboard logging directives in the NGINX
  configuration and expand the verification flow into a concrete end-to-end
  check using the Security Dashboard Event Logs tab.

- Add labeled example test requests for common attack patterns (XSS, path
  traversal, SQL injection) so operators can generate sample security events
  while setting up the default blocking policy. Document that customized or
  transparent policies may alert instead of block.

* docs(nginx-one): add local security monitoring troubleshooting guide

- Add a new local data plane troubleshooting guide for NGINX One security
  monitoring to help customers diagnose why F5 WAF for NGINX security events
  do not appear in the dashboard after setup.

- The new guide covers four checks:
  - invalid secops_dashboard log profile errors in the embedded collector log
  - port 1514 ownership for local syslog delivery
  - presence of the generated security log pipeline in the collector config
  - optional debug exporter configuration for collector-side verification

  Also update the main security monitoring setup guide to improve verification,
  add labeled example attack requests for generating test events, and link to
  the new troubleshooting workflow. Update the section landing page so the new
  guide is discoverable from the security monitoring docs.

* Update content/nginx-one-console/waf-integration/waf-security-dashboard/local-dataplane-troubleshooting.md

Update as recommended

Co-authored-by: Travis Martin <33876974+travisamartin@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Travis Martin <33876974+travisamartin@users.noreply.github.com>

---------

Co-authored-by: Travis Martin <33876974+travisamartin@users.noreply.github.com>
@github-actions github-actions Bot added product/nic Issues related to NGINX Ingress Controller product/nginx-one-console Issues related to NGINX One Console labels Apr 23, 2026
@rnitzan rnitzan marked this pull request as ready for review April 23, 2026 11:03
@rnitzan rnitzan requested a review from a team as a code owner April 23, 2026 11:03
@@ -0,0 +1,57 @@
---
nd-docs: null
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
nd-docs: null

Why null?
Please either leave this line out or use the placeholder docs-000. Don't come up with new interesting ways to fill up this value that might confuse our automations

Comment on lines +1 to +11
---
# We use sentence case and present imperative tone
title: "Kubernetes"
# Weights are assigned in increments of 100: determines sorting order
weight: 100
# Creates a table of contents and sidebar, useful for large documents
toc: true
# Types have a 1:1 relationship with Hugo archetypes, so you shouldn't need to change this
nd-content-type: how-to
nd-product: F5DOSN
---
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please follow the template here. Add the missing values for keywords, summary, and audience.

Comment on lines +6 to +7
---
## F5 DoS for NGINX Arbitrator
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
---
## F5 DoS for NGINX Arbitrator
---
## F5 DoS for NGINX Arbitrator

Comment on lines +1 to +2
---
---
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here and in all the new files in the includes/dos folder

Includes must indicate in which files the content is being used with the nd-files key
Includes must indicate the product using the nd-product key ( F5DOSN)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General question on the scripts. None of them will work unless you've set up admin privileges (such as with sudo). I don't see any evidence that you've set up sudo with any of the includes.

@@ -0,0 +1,24 @@
---
nd-docs: null
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
nd-docs: null

@@ -0,0 +1,26 @@
---
nd-docs: null
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
nd-docs: null

@@ -0,0 +1,91 @@
---
nd-docs: null
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
nd-docs: null


## Use Helm to install F5 DOS for NGINX

You will need to edit the `values.yaml` file for a few changes:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You will need to edit the `values.yaml` file for a few changes:
To use Helm to install F5 DOS for NGINX you need to edit the `values.yaml` and apply the following changes:


- Update _appprotectdos.image.repository_ and _appprotectdos.image.tag_ with the image name chosen during when [building the Docker image](#build-the-docker-image).

The `<JWT Token>` argument should be the _contents_ of the file, not the file itself. Ensure there are no additional characters such as extra whitespace.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The `<JWT Token>` argument should be the _contents_ of the file, not the file itself. Ensure there are no additional characters such as extra whitespace.
The `<JWT Token>` argument must be the _contents_ of the file, not the file itself. Ensure there are no additional characters such as extra whitespace.

should is vague. Avoid.

-t <your-nginx-dos-image-name> .
```

Once you have built the image, push it to your private image repository, which should be accessible to your Kubernetes cluster.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Once you have built the image, push it to your private image repository, which should be accessible to your Kubernetes cluster.
Once you have built the image, push it to your private image repository, which must be accessible to your Kubernetes cluster.


## Create a Dockerfile

In the same folder as your credential files, create a _Dockerfile_ based on your desired operating system image using an example from the following sections.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In the same folder as your credential files, create a _Dockerfile_ based on your desired operating system image using an example from the following sections.
Create a _Dockerfile_ based on your desired operating system image in the same folder as your credential files using an example from the following sections.


The `<JWT Token>` argument should be the _contents_ of the file, not the file itself. Ensure there are no additional characters such as extra whitespace.

On helm deployment environment variables need to be set for image repository and tag.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
On helm deployment environment variables need to be set for image repository and tag.
On Helm, set the deployment environment variables for image repository and tag.

Comment on lines +171 to +172
`set enviorment variable DOS_IMAGE_REPOSITORY` with your actual nginx-dos image anmae.
`set enviorment variable DOS_IMAGE_TAG` with your actual nginx-dos image tag.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`set enviorment variable DOS_IMAGE_REPOSITORY` with your actual nginx-dos image anmae.
`set enviorment variable DOS_IMAGE_TAG` with your actual nginx-dos image tag.
`set environment variable DOS_IMAGE_REPOSITORY` with your actual nginx-dos image anmae.
`set environment variable DOS_IMAGE_TAG` with your actual nginx-dos image tag.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this step is unclear to me. I think it needs to be explained with more detail.

Check the how-to template for guidance on how we use placeholders in the docs.


{{< call-out "note" >}}

At this stage, you have finished deploying F5 DOS for NGINX and can look at [Post-installation checks](#post-installation-checks).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
At this stage, you have finished deploying F5 DOS for NGINX and can look at [Post-installation checks](#post-installation-checks).
The deployment of F5 DOS for NGINX is now complete. You can skip to the [Post-installation checks](#post-installation-checks) now.

Comment on lines +223 to +225
On manifest deployment environment variables need to be set for image repository and tag.
`set enviorment variable DOS_IMAGE_REPOSITORY` with your actual nginx-dos image anmae.
`set enviorment variable DOS_IMAGE_TAG` with your actual nginx-dos image tag.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see my comment and fixes in the previous section

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nap-dos LoadBalancer 10.43.83.225 <pending> 80:30307/TCP 1m
```
## Post-Installation Checks
Copy link
Copy Markdown
Contributor

@JTorreG JTorreG Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Post-Installation Checks
## Post-installation checks

Sentence case capitalization

and can look at .
{{< include "dos/install-post-checks.md" >}}

## F5 DoS for NGINX Arbitrator
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## F5 DoS for NGINX Arbitrator
## F5 DoS for NGINX arbitrator

Sentence case

Comment on lines +1 to +16
---
nd-content-type: how-to
nd-docs: DOCS-000
nd-product: NONECO
title: Troubleshoot security monitoring on the local data plane
description: "Check the local NGINX Agent and OpenTelemetry Collector configuration when F5 WAF for NGINX security events do not appear in NGINX One Console."
weight: 450
toc: true
nd-keywords: "security monitoring, troubleshooting, local data plane, nginx-agent, opentelemetry collector, secops_dashboard, WAF events"
nd-summary: >
Use this guide when F5 WAF for NGINX security events do not appear in the NGINX One Console security dashboard even after you complete the setup flow.
It walks through the local data plane checks for invalid log profiles, missing OpenTelemetry log pipelines, and debug logging.
These checks help confirm whether NGINX Agent is receiving, parsing, and forwarding security events correctly.
nd-audience: operator
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We strongly advise not to create specific documents for troubleshooting.

Troubleshooting advice should be either live next to the how-to/tutorial steps that can cause the issues, or in the myF5 KB.

Please review this document and decide if the guidance provide here can live next to the steps it's trying to troubleshoot in other docs.

@@ -0,0 +1 @@
google-site-verification: google1f145127a2762dc1.html No newline at end of file
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is the purpose of this?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file was added in a separate PR (to enable Google Search Console). I think this PR just needs to merge in changes from main -- it seems behind.

See: #1871

Copy link
Copy Markdown
Contributor

@JTorreG JTorreG left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please review the suggestions and comments. there are major issues in this PR that must be resolved before merge

@JTorreG JTorreG changed the title featrue: F5 dos for nginx 4.9 feat: F5 dos for nginx 4.9 Apr 30, 2026
@JTorreG
Copy link
Copy Markdown
Contributor

JTorreG commented Apr 30, 2026

@rnitzan on top of 2 technical writer approvals for the prose content, we will also need a review and approval from an engineer to confirm that all the dockerfiles have been tested and are correct. Thank you.

Comment on lines +1 to +2
---
---
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General question on the scripts. None of them will work unless you've set up admin privileges (such as with sudo). I don't see any evidence that you've set up sudo with any of the includes.

@travisamartin travisamartin mentioned this pull request Apr 30, 2026
3 tasks
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This include isn't actually used anywhere.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This include isn't actually used anywhere.

@travisamartin
Copy link
Copy Markdown
Contributor

@rnitzan -- I opened a PR w/ my suggested edits. Take a look: #1905

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The file name has two .. for the extension. Should be renamed.

Copy link
Copy Markdown
Contributor

@travisamartin travisamartin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like some includes were added that aren't actually used.

One filename has two .. for the extension and should be renamed.

I had the Tech Writer agent add the requested metadata and do a copy edit on the new and touched files. Since there are a lot of suggested edits, I opened a new PR targeting this one. Take a look: #1905

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation product/dos Issues related to F5 DoS for NGINX product/nginx-one-console Issues related to NGINX One Console product/nic Issues related to NGINX Ingress Controller

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants